package com.example.apidocserver.application.event;

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * 文档上传下载
 *
 * @author xyqlg
 */
public interface DocLoadEvent {
    /**
     * 文档目录导入
     *
     * @param file    文档对象
     * @param spaceId 空间id
     * @param docId   文档id
     * @throws IOException io异常
     */
    void inputMenuApi(MultipartFile file, Integer spaceId, Integer docId) throws IOException;

    /**
     * 下载单个接口文档
     *
     * @param document 文档对象
     * @param apiId    接口id
     * @param envId    环境id
     * @return 文档名称
     */
    String downApiInfoOneById(XWPFDocument document, Integer apiId, Integer envId);

    /**
     * 生成md字符串
     *
     * @param apiId        接口id
     * @param envId        环境id
     * @param startTitleNo 标题开始号
     * @return 接口文档字符串
     */
    String generateMdApiById(Integer apiId, Integer envId, Integer startTitleNo);

    /**
     * 文档生成md字符串
     *
     * @param docId        文档id
     * @param envId        环境id
     * @param startTitleNo 标题开始号
     * @return 接口文档字符串
     */
    String generateMdDocById(Integer docId, Integer envId, Integer startTitleNo);

    /**
     * 生成语雀字符串
     *
     * @param apiId        接口id
     * @param envId        环境id
     * @param startTitleNo 标题开始号
     * @return 接口文档字符串
     */
    String generateYuqueApiInfoById(Integer apiId, Integer envId, Integer startTitleNo);

    /**
     * 文档生成语雀字符串
     *
     * @param docId        文档id
     * @param envId        环境id
     * @param startTitleNo 标题开始号
     * @return 接口文档字符串
     */
    String generateYuqueDocById(Integer docId, Integer envId, Integer startTitleNo);
}
